Peer-to-peer networking refers to using personal computers for more than just client-based computing tasks. More specifically, peer-to-peer computing leverages the fact that modern personal computers have fast processors, vast memories, and large hard drives, none of which are being fully utilized when performing common computing tasks such as e-mail and Web browsing. When a personal computer acts as both a client and server it is acting as a “peer”.
The typical computing model for many applications is a client/server model. A server computer typically has vast resources and responds to requests for resources and data from client computers. Client computers initiate requests for resources or data from server computers. A good example of the client/server model of computing is Web browsing. Web servers on the Internet are typically high-end dedicated server computers with very fast processors (or multiple processors) and huge hard disk arrays. The Web server stores all of the content associated with a Web site (HTML files, graphics, audio and video files, etc.) and listens for incoming requests to view the information on a particular Web page. When a page is requested, the Web server sends the page and its associated files to the requesting client.
A point of contrast between client/server and peer-to-peer networking is the use of the Domain Name Service (DNS). Server computers are typically registered in DNS so that client computers can resolve a name to the Internet protocol address of the server computer. Client computers are typically not registered in DNS because many client computers have transient connectivity and connect for unpredictable amounts of time and can be assigned a new Internet protocol address for each connection. Also, client computers do not have shared resources and do not respond to requests for resources. Therefore, other computers do not need to resolve the names of client computers. DNS address records for client computers are not necessary.
Peer computers, on the other hand, have resources to share. However, they still have transient connectivity. Peer computers could use DNS dynamic update to register their names, however, very few DNS servers on the Internet support DNS dynamic update. To be successful for peer-to-peer networking, peer computers do not rely on the existing DNS infrastructure. Therefore, to resolve peer names to their addresses and not rely on DNS, a mechanism referred to as Peer Name Resolution Protocol (PNRP) can be used or other peer-to-peer name resolution protocols, such as P-GRID.
There are problems with both peer-to-peer name resolution protocols and DNS. For example, DNS has high administrative costs when namespaces change; and peer-to-peer name resolution protocols are limited to resolving peer names to IP addresses, protocol names and port identification. What is needed is a method for name resolution and mapping of names that provides enhanced results with lower administrative costs.